A disk drive is known as a device which uses various types of media such as optical disks, magneto-optical disks, or flexible magnetic-recording disks. Of these types of disk drives, a hard-disk drive (HDD) is used not only in computers, but in many electronic devices such as video recording and playback devices and car navigation systems.
A magnetic-recording disk used in a HDD includes a plurality of data tracks and a plurality of servo tracks formed in concentric circular shapes. Each servo track is constructed from a plurality of servo sectors containing address information. In addition, each data track is constructed from a plurality of data sectors containing user data. The data sectors are recorded in the circumferential direction between the servo sectors, which are separated. A head-slider supported by an oscillating actuator can write data to a data sector, and read out data from a data sector, by accessing a designated data sector in accordance with address information in the servo sector.
The HDD reads data from a target address, or writes data to, a target address by following the commands from a host. Before a data read or data write, the HDD controls the oscillating actuator, and moves the head-slider to the target data track. Thus, a process for moving the head-slider from the current data track, which is located at one radial position, to the target data track which is located at another radial position, is referred to as a seek process.
If an error is generated in a read process or a write process, the HDD starts an error-recovery process for handling the error. The HDD includes an error-recovery process table which is set and stored in advance. The error-recovery process table is constructed from a plurality of error-recovery processing operations. The HDD sequentially executes, from the highest priority operation, the error-recovery processing operations stored in the error-recovery process table. If the error is recovered in any of the operations, the HDD resumes normal operation.
The errors generated in the HDD processing and the effective error-recovery processing operations for an error differ depending on the processing mode in which the error was generated. Consequently, the HDD includes a plurality of error-recovery process tables corresponding to a plurality of processing modes. For example, the HDD includes a seek error-recovery process table, a read error-recovery process table, and a write error-recovery process table.
When a read command or a write command is received from the host, the HDD starts the seek process from the data track currently being followed and moves the head-slider to the target data track. When the head-slider is able to follow the target track, the seek process ends. If an error is generated in this seek process, the HDD refers to the seek error-recovery process table, and sequentially executes each operation until the error is recovered.
If an error is generated in a data read or a data write in the target track after completion of the seek, the HDD refers to the read error-recovery process table or the write error-recovery process table, and sequentially executes each operation in the table until the error is recovered, which is until the data read or write ends normally.
One error during the seek process, which is known in the art, is caused by a defect in the magnetic-recording disk. When the head-slider passes over the defect, the HDD cannot correctly read the servo data, and the seek process is suspended. For example, when the specified number of servo data sectors cannot be read correctly, a seek error is generated.
This type of seek error indicates that there is a region having a poor recording state for servo data on the recording surface. For example, a write failure in a servo data write or a defective region on the recording surface spreads over time, and a defective region is formed in the servo data as described above. Since a large number of defective servo sectors exists in the servo track, a data track which cannot be correctly followed cannot be used in a data write. This type of data track is not a target for the seek process, and the head-slider passes over that track to seek in another data track. This is the cause of a seek error.